package leetcode.l0612;

/**
 * 给定一个非负整数数组 nums ，你最初位于数组的 第一个下标 。
 * 数组中的每个元素代表你在该位置可以跳跃的最大长度。
 * 判断你是否能够到达最后一个下标。
 * @author Retain
 * @date 2021/6/12 11:22
 */
public class Medium_跳跃游戏_55 {
    public boolean canJump(int[] nums) {
        if (nums.length == 0) {
            return true;
        }
        int nowLength = nums[0];
        int i = 1;
        // 从第二项开始，跟前一项的剩余步数比较，如果比剩余的步数大，那么赋值，这样可以走更远
        for (;nowLength >0 && i < nums.length; i++) {
            nowLength--;
            if (nums[i] >= nowLength) {
                nowLength = nums[i];
            }
        }
        // 最后返回走的步数和数组长度是否相等，如果相等说明走到了最后一项
        return i == nums.length;
    }
}
